home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / ftr.z / ftr
Text File  |  1998-10-30  |  37KB  |  859 lines

  1.  
  2.  
  3.  
  4. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ffffffffttttrrrr - IRIX Interactive Desktop optimized file-type rules compiler
  10.  
  11.      ffffttttrrrr  - IRIX Interactive Desktop optimized file-type rules compiler
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      ffffffffttttrrrr ----oooo _o_u_t_p_u_t_F_i_l_e....oooottttrrrr [ _f_t_r_F_i_l_e | _o_t_r_F_i_l_e ] ...
  15.  
  16.      ffffttttrrrr ----oooo _o_u_t_p_u_t_F_i_l_e....oooottttrrrr [ _f_t_r_F_i_l_e | _o_t_r_F_i_l_e ] ...
  17.  
  18. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      _f_f_t_r is a utility used to compile file-type rule (FTR) files.  It creates
  20.      optimized type rule (OTR) files. The _f_t_r command, a link to the _f_f_t_r
  21.      command, does not support the older compiled type rule (CTR) format files
  22.      anymore.
  23.  
  24.      An FTR file contains a list of file-type rules.  Each rule describes how
  25.      a file of a particular type will appear within the IRIX Interactive
  26.      Desktop and defines what functions the user can perform on the file by
  27.      double-clicking on it or choosing menu items that manipulate it.  (A menu
  28.      becomes active when an icon is selected; this menu is accessible to the
  29.      user from both the Selected toolchest and the right mouse button.)  A
  30.      file-type rule also defines the method by which a file is given a type
  31.      and how files of a particular type are to be printed.
  32.  
  33.      Arguments whose names end with `.ftr' are assumed to be FTR files.
  34.      Arguments whose names end with `.otr' are assumed to be OTR files.
  35.      Arguments whose names end with `.ctr' are assumed to be CTR files, which
  36.      are no longer supported in IRIX 6.3 and later releases. The FTR files are
  37.      compiled and combined with the pre-compiled OTR files.  The resulting OTR
  38.      file is left in the file whose name is given with the ----oooo option.
  39.  
  40.      The _f_f_t_r and _f_t_r commands can compile and combine up to 200 files.  There
  41.      may be only one output file and it must have the suffix `.otr'.  The
  42.      output file must not be also an input file.
  43.  
  44.      IRIX 6.5 reintroduces support for personal icons.  Users can create FTR
  45.      files under their $_H_O_M_E/._d_e_s_k_t_o_p-<_h_o_s_t_n_a_m_e>/_f_i_l_e_t_y_p_e/ directory (where
  46.      <_h_o_s_t_n_a_m_e> is the result of running the _h_o_s_t_n_a_m_e(_1) command), copy the
  47.      /_u_s_r/_l_i_b/_f_i_l_e_t_y_p_e/_M_a_k_e_f_i_l_e._p_e_r_s_o_n_a_l file to that directory as _M_a_k_e_f_i_l_e,
  48.      and type "make" to create personal icons.  For details, users can view
  49.      the contents of the _M_a_k_e_f_i_l_e._p_e_r_s_o_n_a_l file.
  50.  
  51.  
  52.      For more information about the entire IRIX Interactive Desktop
  53.      environment, see the _I_I_D(_1) man page.
  54.  
  55.  
  56. FFFFTTTTRRRR FFFFIIIILLLLEEEE FFFFOOOORRRRMMMMAAAATTTT
  57.      FTR files are made up of lists of TYPE declarations and CONVERT
  58.      declarations.  A TYPE declaration looks like this, where each of the
  59.      items between triangle brackets <<<<>>>> should be replaced appropriately:
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  71.  
  72.  
  73.  
  74.          TYPE <filetype name>
  75.              MAP         <name space> <value>
  76.              MATCH       <match rule>;
  77.              LEGEND      <human-readable description of the file type>
  78.              SUPERTYPE   <filetype name>
  79.              SPECIALFILE
  80.              DROPIF      <drop type(s)>
  81.              CMD OPEN    <open shell script>
  82.              CMD ALTOPEN <altopen shell script>
  83.              CMD DROP    <drop shell script>
  84.              CMD PRINT   <print shell script>
  85.              MENUCMD     "<menu string>" <menu shell script>
  86.              SETVAR      <variable name> <variable value>
  87.              ICON        <icon program>;
  88.  
  89.      The TYPE declaration must come first.  The <_f_i_l_e_t_y_p_e _n_a_m_e> declares the
  90.      name of the file type and is a one-word ASCII string.  Legal type names
  91.      can be any legal C-language variable name.
  92.  
  93.      Example TYPE declaration:
  94.  
  95.          TTTTYYYYPPPPEEEE DDDDiiiirrrreeeeccccttttoooorrrryyyy
  96.  
  97.      All rules that follow a TYPE declaration apply to that type, until the
  98.      next TYPE declaration or CONVERT declaration is encountered in the FTR
  99.      file.  Each TYPE declaration should have a unique name.  The remaining
  100.      rules (MAP, MATCH, LEGEND, SPECIALFILE, etc.) may appear in any order
  101.      after the TYPE rule.
  102.  
  103.      The MAP rules specify a list of all mappings from the desktop name space
  104.      to a non-desktop name space.  Desktop name space is defined by the TYPE
  105.      names.  One can use the MAP rule to translate from a desktop TYPE to
  106.      another name space, such as _I_C_C_C_M. The following keywords are currently
  107.      defined to indicate various mappings:
  108.  
  109.      _I_C_C_C_M name space:
  110.      MAP  _S_e_l_e_c_t_i_o_n_T_a_r_g_e_t     <ICCCM selection target type>
  111.  
  112.      _M_I_M_E name space:
  113.      MAP  _M_i_m_e_T_y_p_e       <Mime type>
  114.  
  115.      _M_a_c_i_n_t_o_s_h name space:
  116.      MAP  _M_a_c_T_y_p_e_I_n_f_o    <mac type: 4 chars> <mac creator: 4 chars>
  117.  
  118.  
  119.      ICCCM Example:
  120.  
  121.          TTTTYYYYPPPPEEEE AAAAIIIIFFFFFFFFSSSSoooouuuunnnnddddFFFFiiiilllleeee
  122.              MMMMAAAAPPPP  SSSSeeeelllleeeeccccttttiiiioooonnnnTTTTaaaarrrrggggeeeetttt AAAAIIIIFFFFFFFF____FFFFIIIILLLLEEEE
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  137.  
  138.  
  139.  
  140.      The MATCH rule is a logical expression that determines whether a
  141.      particular file is of the declared TYPE.  A MATCH rule consists of a C-
  142.      style logical expression made up of functions and expressions.  The
  143.      following C language operators may be used in a MATCH expression:
  144.  
  145.           + - * / & | ^ ! % ( )
  146.  
  147.      The following C-language conditional operators may be used in a MATCH
  148.      expression:
  149.  
  150.           &&  ||  ==  !=  <  >  <=  >=
  151.  
  152.      The == operator works for string comparisons as well as for numerical
  153.      expressions.
  154.  
  155.      The following constants may be used in a MATCH expression:
  156.  
  157.           true  false
  158.  
  159.      True evaluates to the number 1 and false evaluates to the number 0.
  160.  
  161.      Numbers in a match expression may be expressed in decimal, octal, or
  162.      hexadecimal notation.  Octal numbers are expressed with a leading zero,
  163.      such as 0732.  Hexadecimal numbers are expressed with a leading `0x' such
  164.      as 0xf03C.  Decimal number are expressed normally, but may not have a
  165.      leading zero.
  166.  
  167.      The following expression functions are available:
  168.  
  169.      ascii     Returns true if the first 512 bytes of the file are all
  170.                printable ASCII characters.
  171.  
  172.      char(_n)   Returns the _nth byte of the file, as a signed character; range
  173.                -128 to 127.
  174.  
  175.      dircontains("_s_t_r_i_n_g")
  176.                Returns true if the file is a directory and contains the file
  177.                named by _s_t_r_i_n_g.
  178.  
  179.      glob("_s_t_r_i_n_g")
  180.                Returns true if the file's name matches _s_t_r_i_n_g; allows the
  181.                following expansions in string for pattern matching: { } [ ] *
  182.                ? and backslash (see _s_h(_1) filename expansion).
  183.  
  184.      linkcount Returns the number of hard links to the file.
  185.  
  186.      long(_n)   Returns the signed long integer located at the _nth byte of the
  187.                file; range -2^31 to 2^31-1.
  188.  
  189.      mode      Returns the mode bits of the file (see _c_h_m_o_d(_1)).
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  203.  
  204.  
  205.  
  206.      print(_e_x_p_r _o_r _s_t_r_i_n_g)
  207.                Prints the value of the expression _e_x_p_r _o_r _s_t_r_i_n_g to stdout
  208.                each time the function is evaluated; used for debugging MATCH
  209.                rules.  Always returns true.
  210.  
  211.      short(_n)  Returns the signed short integer located at the _nth byte of the
  212.                file; range -32768 to 32767.
  213.  
  214.      size      Returns the size of the file in bytes.
  215.  
  216.      string(_n,_m)
  217.                Returns a string from the file that is _m bytes (characters)
  218.                long, beginning at the _nth byte of the file.
  219.  
  220.      uchar(_n)  Returns the _nth byte of the file as an unsigned character;
  221.                range 0 to 255.
  222.  
  223.      tag       Returns the specific IRIX Interactive Desktop application tag
  224.                injected into a MIPS executable or shell script by the tag
  225.                injection tool (see _t_a_g(_1)).  Returns 65535 if the file is not
  226.                a tagged file.
  227.  
  228.      mactype   Returns the mac type attribute. It returns a four character
  229.                long string on success, representing the mac type, and "????"
  230.                on failure or error.
  231.  
  232.      maccreator
  233.                Returns the mac creator attribute. It returns a four character
  234.                long string on success, representing the mac creator, and
  235.                "????" on failure or error.
  236.  
  237.      ushort(_n) Returns the unsigned short integer located at the _nth byte of
  238.                the file; range 0 to 65535.
  239.  
  240.      ulong(_n)  Returns the unsigned long integer located at the _nth byte of
  241.                the file; range 0 to 2^32-1.
  242.  
  243.      Example MATCH rule:
  244.  
  245.          MMMMAAAATTTTCCCCHHHH ddddiiiirrrrccccoooonnnnttttaaaaiiiinnnnssss((((""""....dddduuuummmmppppsssstttteeeerrrr""""))));;;;
  246.  
  247.      A common mistake with MATCH expressions is to forget the semicolon at the
  248.      end of the expression.  It is required; the _f_t_r compiler will produce a
  249.      syntax error if it is missing.
  250.  
  251.      The LEGEND rule is a human-readable description of the file type. Example
  252.      LEGEND rule:
  253.  
  254.          LLLLEEEEGGGGEEEENNNNDDDD CCCC pppprrrrooooggggrrrraaaammmm ssssoooouuuurrrrcccceeee ffffiiiilllleeee
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  269.  
  270.  
  271.  
  272.      Legends that are longer than 25 characters may be truncated in some
  273.      circumstances.  Be aware that legends will be presented to users who may
  274.      not understand computer jargon.
  275.  
  276.      The SUPERTYPE rule tells the IRIX Interactive Desktop to treat the file
  277.      as a subtype of another type.  This can be accessed through the _i_s_S_u_p_e_r
  278.      command in the OPEN, ALTOPEN, DROP, and MENUCMD rules.  A common use of
  279.      the SUPERTYPE rule is to check isSuper(Ascii) in an OPEN rule to
  280.      determine if a file can be used by a simple text editor.  The IRIX
  281.      Interactive Desktop uses SUPERTYPE and isSuper(Directory) to determine if
  282.      a file is a subtype of the Directory type, in order to handle certain
  283.      filesystem manipulations correctly.
  284.  
  285.      Example SUPERTYPE rule:
  286.  
  287.          SSSSUUUUPPPPEEEERRRRTTTTYYYYPPPPEEEE EEEExxxxeeeeccccuuuuttttaaaabbbblllleeee
  288.  
  289.      The DROPIF rule tells the IRIX Interactive Desktop to allow only those
  290.      files to be dropped whose type matches the type names specified in this
  291.      rule. If they do not match then the drop rule will not get executed.
  292.  
  293.      Example DROPIF rule:
  294.  
  295.          DDDDRRRROOOOPPPPIIIIFFFF MMMMaaaaiiiillllFFFFiiiilllleeee MMMMaaaaiiiillllFFFFoooollllddddeeeerrrr
  296.  
  297.      The SPECIALFILE rule declares that a file type is not a plain file.
  298.      Block and char device nodes, named pipes, directories, and UNIX domain
  299.      sockets are special files.  Special files are not opened by the MATCH
  300.      rule (described below).  The presence of this rule suffices to mark the
  301.      file type as not a plain file.
  302.  
  303.      Example SPECIALFILE rule:
  304.  
  305.          SSSSPPPPEEEECCCCIIIIAAAALLLLFFFFIIIILLLLEEEE
  306.  
  307.      The CMD OPEN, CMD ALTOPEN, CMD DROP, and CMD PRINT rules determine how an
  308.      icon behaves when a user interacts with it, whether it is by double-
  309.      clicking, double-clicking with the Alt key depressed, dragging and
  310.      dropping another icon on it, or printing it with the menu Print command.
  311.      The CMD rules consist of a Bourne shell expression which is executed when
  312.      the user performs the appropriate interaction (double-clicking, drag-
  313.      dropping, etc.) on the file.
  314.  
  315.      Example CMD OPEN rule:
  316.  
  317.          CCCCMMMMDDDD OOOOPPPPEEEENNNN ddddiiiirrrrvvvviiiieeeewwww $$$$LLLLEEEEAAAADDDDEEEERRRR $$$$RRRREEEESSSSTTTT
  318.  
  319.      Example CMD ALTOPEN rule:
  320.  
  321.          CCCCMMMMDDDD AAAALLLLTTTTOOOOPPPPEEEENNNN $$$$WWWWIIIINNNNEEEEDDDDIIIITTTTOOOORRRR $$$$LLLLEEEEAAAADDDDEEEERRRR $$$$RRRREEEESSSSTTTT
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  335.  
  336.  
  337.  
  338.      Example CMD DROP rule:
  339.  
  340.          CCCCMMMMDDDD DDDDRRRROOOOPPPP $$$$TTTTAAAARRRRGGGGEEEETTTT $$$$SSSSEEEELLLLEEEECCCCTTTTEEEEDDDD
  341.  
  342.      Example CMD PRINT rule:
  343.  
  344.          CCCCMMMMDDDD PPPPRRRRIIIINNNNTTTT rrrroooouuuutttteeeepppprrrriiiinnnntttt ----tttt $$$$LLLLEEEEAAAADDDDEEEERRRRTTTTYYYYPPPPEEEE $$$$LLLLEEEEAAAADDDDEEEERRRR $$$$RRRREEEESSSSTTTT
  345.  
  346.      The SETVAR rule is used to define a variable specific to the type. It
  347.      takes two arguments, <variable name>, the name of the variable, and
  348.      <variable value>, the value of the variable.  Legal variable names can be
  349.      any legal C-language variable names.  These variables can be used by
  350.      either the desktop or some other application.  Currently, two variables
  351.      are defined and recognized this way by the desktop.  The _n_o_L_a_u_n_c_h_E_f_f_e_c_t
  352.      variable, when set to True, turns off the visual launch effect for that
  353.      icon type.  The _n_o_L_a_u_n_c_h_S_o_u_n_d variable, when set to True, turns off the
  354.      launch sound for the specified type.
  355.  
  356.      Example SETVAR rule:
  357.  
  358.          SSSSEEEETTTTVVVVAAAARRRR nnnnooooLLLLaaaauuuunnnncccchhhhEEEEffffffffeeeecccctttt TTTTrrrruuuueeee
  359.  
  360.      disables the visual launch effect.  In the desktop, these variables are
  361.      used to turn off the visual launch effect for all device icon types, and
  362.      to turn off the launch sound for all sound icon types.
  363.  
  364.  
  365.      The MENUCMD rule is used to put entries on the icon's menu.  It takes as
  366.      argument a string which is inserted as a menu entry and a Bourne shell
  367.      expression which is executed if the menu item is selected.  For
  368.      localization, the quoted <menu string> is often prepended with a line
  369.      number indexing into the /_u_s_r/_l_i_b/_l_o_c_a_l_e/$_L_A_N_G/_M_S_G_F_I_L_E_S/_s_g_i_d_e_s_k_t_o_p._s_t_r
  370.      file.  Based on the current LANG environment variable setting, the string
  371.      on the specified line in the appropriate translated _s_g_i_d_e_s_k_t_o_p._s_t_r file
  372.      will appear on the Selected menu.  See _l_o_c_a_l_e(_1) for more information.
  373.  
  374.      Several FTR variables are expanded before the shell expressions in CMD
  375.      and MENUCMD rules are executed.  They are described in EEEEXXXXPPPPAAAANNNNDDDDEEEEDDDD
  376.      VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS, below.
  377.  
  378.      Example MENUCMD rule:
  379.  
  380.          MMMMEEEENNNNUUUUCCCCMMMMDDDD ::::444455558888::::""""EEEEddddiiiitttt"""" $$$$WWWWIIIINNNNEEEEDDDDIIIITTTTOOOORRRR $$$$LLLLEEEEAAAADDDDEEEERRRR
  381.  
  382.      The ICON rule is used to specify how an icon is drawn.  Icons are
  383.      described by an icon description program written in a C- and GL-like
  384.      language.  Normally icon geometry is stored separately from the FTR file
  385.      and incorporated using the include command.  (This enables the icon's
  386.      picture and file-type rules to be edited separately.)
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  401.  
  402.  
  403.  
  404.      The syntax for including icon geometry files into file-type rules is the
  405.      following:
  406.           include("_r_e_l_a_t_i_v_e_P_a_t_h");
  407.      where "_r_e_l_a_t_i_v_e_P_a_t_h" is a literal string such as "iconlib/MyApp.fti" or
  408.      "../iconlib/generic.exec.open.fti".  Icon geometry files (`.fti' files)
  409.      can be created and edited with the graphical drawing program
  410.      _i_c_o_n_s_m_i_t_h(_1_G).
  411.  
  412.      The following C-language operators may be used in an ICON description:
  413.  
  414.           + - * / & | ^ ! % ( ) { }
  415.  
  416.      The following C-language conditional operators may be used in an icon
  417.      description:
  418.  
  419.           &&  ||  ==  !=  <  >  <=  >=
  420.  
  421.      The following constants may be used in an icon description:
  422.  
  423.           true  false
  424.  
  425.      The following icon color constants may be used in an icon description
  426.      routine:
  427.  
  428.           iconcolor  outlinecolor  shadowcolor
  429.  
  430.      These three standard colors change value automatically when the icon is
  431.      selected, opened, passed over by the mouse pointer (located), or
  432.      otherwise manipulated.  For example, iconcolor usually appears white
  433.      onscreen.  However, when the user selects an icon containing iconcolor,
  434.      its iconcolor parts change from white to yellow.  When some icon is
  435.      dropped on an icon containing iconcolor, its iconcolor parts change from
  436.      white to royal blue.  Similarly, outlinecolor usually appears black and
  437.      shadowcolor usually appears dark gray, but these colors can change in
  438.      response to the user's mouse events.
  439.  
  440.      The following icon status variables are set by IRIX Interactive Desktop,
  441.      and may be used in an icon description routine:
  442.  
  443.           current  disabled  opened  located  selected
  444.  
  445.      Each of these variables has a value of either true or false.  They can be
  446.      used in a conditional statement to alter the icon picture when the icon
  447.      has been manipulated in various ways from the desktop.
  448.  
  449.      For example, the following ICON rule will cause the icon to display the
  450.      picture _M_y_A_p_p_C_l_o_s_e_d._f_t_i superimposed over the horizontal "carpet"
  451.      _g_e_n_e_r_i_c._e_x_e_c._c_l_o_s_e_d._f_t_i, until the user double-clicks the icon, at which
  452.      time it will change to show the picture _M_y_A_p_p_O_p_e_n._f_t_i superimposed over
  453.      the vertical carpet _g_e_n_e_r_i_c._e_x_e_c._o_p_e_n._f_t_i:
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  467.  
  468.  
  469.  
  470.          IIIICCCCOOOONNNN  {{{{
  471.              iiiiffff ((((ooooppppeeeennnneeeedddd)))) {{{{
  472.                  iiiinnnncccclllluuuuddddeeee((((""""........////iiiiccccoooonnnnlllliiiibbbb////ggggeeeennnneeeerrrriiiicccc....eeeexxxxeeeecccc....ooooppppeeeennnn....ffffttttiiii""""))));;;;
  473.                  iiiinnnncccclllluuuuddddeeee((((""""iiiiccccoooonnnnlllliiiibbbb////MMMMyyyyAAAAppppppppOOOOppppeeeennnn....ffffttttiiii""""))));;;;
  474.              }}}} eeeellllsssseeee {{{{
  475.                  iiiinnnncccclllluuuuddddeeee((((""""........////iiiiccccoooonnnnlllliiiibbbb////ggggeeeennnneeeerrrriiiicccc....eeeexxxxeeeecccc....cccclllloooosssseeeedddd....ffffttttiiii""""))));;;;
  476.                  iiiinnnncccclllluuuuddddeeee((((""""iiiiccccoooonnnnlllliiiibbbb////MMMMyyyyAAAAppppppppCCCClllloooosssseeeedddd....ffffttttiiii""""))));;;;
  477.              }}}}
  478.          }}}}
  479.  
  480.      The order of inclusion matters; each successive picture included will
  481.      appear superimposed on top of the previously included pictures.
  482.      Throughout the desktop, the horizontal carpet indicates that an icon is
  483.      an executable that is not running, while the vertical carpet indicates a
  484.      running executable.  Icon pictures are typically stored in directories
  485.      named _i_c_o_n_l_i_b (see _T_h_e _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e _D_e_s_k_t_o_p _I_n_t_e_g_r_a_t_i_o_n _G_u_i_d_e for
  486.      more details).
  487.  
  488.      Other legal C variables may be used in an icon description routine
  489.      without need of declaration; all variables are represented as type float.
  490.  
  491.      The icon description functions comprise, for the most part, a very
  492.      restricted subset of the C-language version of the IRIS Graphics Library,
  493.      modified for 2-D drawing.  The valid icon description functions are:
  494.  
  495.      arc(_x,_y,_r,_s_t_a_r_t_a_n_g,_e_n_d_a_n_g)
  496.                Draw an arc starting at icon coordinates _x,_y, radius _r,
  497.                starting at angle _s_t_a_r_t_a_n_g, ending at angle _e_n_d_a_n_g. Angle
  498.                measures are in tenths of degrees.
  499.  
  500.      arcf(_x,_y,_r,_s_t_a_r_t_a_n_g,_e_n_d_a_n_g)
  501.                Like _a_r_c, but filled with the current pen color.
  502.  
  503.      bclos(_c_o_l_o_r)
  504.                Like _p_c_l_o_s (see below) but uses _c_o_l_o_r for the border (outline)
  505.                color of the polygon.
  506.  
  507.      bgnclosedline()
  508.                Begin drawing a closed, unfilled figure drawn in the current
  509.                pen color.  Used in conjunction with _v_e_r_t_e_x and _e_n_d_c_l_o_s_e_d_l_i_n_e.
  510.  
  511.      bgnline() Like _b_g_n_c_l_o_s_e_d_l_i_n_e, except the figure is not closed.  Used in
  512.                conjunction with _v_e_r_t_e_x and _e_n_d_l_i_n_e.
  513.  
  514.      bgnoutlinepolygon()
  515.                Begin drawing a polygon filled with the current pen color.  The
  516.                polygon is outlined with a color specified by
  517.                _e_n_d_o_u_t_l_i_n_e_p_o_l_y_g_o_n. Also used in conjunction with _v_e_r_t_e_x.
  518.  
  519.      bgnpoint()
  520.                Begin drawing a series of unconnected points defined using
  521.                calls to _v_e_r_t_e_x. Used in conjunction with _v_e_r_t_e_x and _e_n_d_p_o_i_n_t.
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  533.  
  534.  
  535.  
  536.      bgnpolygon()
  537.                Like _b_g_n_o_u_t_l_i_n_e_p_o_l_y_g_o_n except the polygon is not outlined.
  538.                Used in conjunction with _v_e_r_t_e_x and _e_n_d_p_o_l_y_g_o_n.
  539.  
  540.      color(_n)  Set the current pen color index to _n.
  541.  
  542.      draw(_x,_y) Draw a line in the current color from the current pen location
  543.                to _x,_y.
  544.  
  545.      endclosedline()
  546.                Finishes a closed, unfilled figure started with _b_g_n_c_l_o_s_e_d_l_i_n_e.
  547.  
  548.      endline() Finishes an open, unfilled figure started with _b_g_n_l_i_n_e.
  549.  
  550.      endoutlinepolygon(_c_o_l_o_r)
  551.                Finishes a filled polygon started with _b_g_n_o_u_t_l_i_n_e_p_o_l_y_g_o_n and
  552.                outlines it with _c_o_l_o_r.
  553.  
  554.      endpoint()
  555.                Finishes a series of points started with _b_g_n_p_o_i_n_t.
  556.  
  557.      endpolygon()
  558.                Finishes a filled, unoutlined polygon started with _b_g_n_p_o_l_y_g_o_n.
  559.  
  560.      for(_a_s_s_i_g_n_m_e_n_t;_e_x_p_r;_a_s_s_i_g_n_m_e_n_t)
  561.                Standard C-language for-loop.
  562.  
  563.      if(_e_x_p_r) _e_x_p_r [ else _e_x_p_r ]
  564.                Standard C-language if statement.
  565.  
  566.      move(_x,_y) Move the current pen location to _x,_y.
  567.  
  568.      pclos()   Draw a line in the current pen color that closes the current
  569.                polygon, and fill the polygon with the current color.
  570.  
  571.      pdr(_x,_y)  Draw the side of a filled polygon in the current pen color,
  572.                from the current pen location to _x,_y.
  573.  
  574.      pmv(_x,_y)  Begin a filled polygon at location _x,_y.
  575.  
  576.      print(_e_x_p_r _o_r _s_t_r_i_n_g)
  577.                Print the value of the expression _e_x_p_r _o_r _s_t_r_i_n_g to stdout.
  578.                Used for debugging icon programs.
  579.  
  580.      vertex(_x,_y)
  581.                Specifies a coordinate used for drawing points, lines, and
  582.                polygons by _b_g_n_p_o_i_n_t, _b_g_n_l_i_n_e, _b_g_n_p_o_l_y_g_o_n, etc.
  583.  
  584.      The _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e _D_e_s_k_t_o_p _U_s_e_r _I_n_t_e_r_f_a_c_e _G_u_i_d_e_l_i_n_e_s contains detailed
  585.      guidelines for creating icons.  The following is a brief list of
  586.      suggested style conventions to maintain when drawing icons:
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  599.  
  600.  
  601.  
  602.           Use the iconcolor, outlinecolor, and shadowcolor as icons' typical
  603.           colors.  Be sparing with the use of other accent colors.  This will
  604.           help preserve the impact of color when it is needed.
  605.  
  606.           Create icons that maintain the overall 3-D feel that the basic IRIX
  607.           Interactive Desktop icons have.  The _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e _D_e_s_k_t_o_p
  608.           _I_n_t_e_g_r_a_t_i_o_n _G_u_i_d_e describes how to use _i_c_o_n_s_m_i_t_h(_1_G) to draw icons
  609.           in the proper perspective.
  610.  
  611.           The generic executable and generic data file icons, supplied in
  612.           /_u_s_r/_l_i_b/_f_i_l_e_t_y_p_e/_i_c_o_n_l_i_b, establish extensible themes that icon
  613.           designers can work from to make it easier for users to recognize the
  614.           icons quickly.  Use ICON rules from the standard system and default
  615.           FTR files as a background for unique representations.
  616.  
  617.      A CONVERT declaration looks like this:
  618.  
  619.          CONVERT <source type> <destination type>
  620.              COST        <non-negative integer>
  621.              FILTER      <filter expression>
  622.  
  623.      The CONVERT declaration must come first.  It declares a method for
  624.      converting one type of file to another.  For example,
  625.  
  626.          CCCCOOOONNNNVVVVEEEERRRRTTTT NNNNrrrrooooffffffffFFFFiiiilllleeee PPPPoooossssttttSSSSccccrrrriiiippppttttFFFFiiiilllleeee
  627.  
  628.      declares a method of converting an nroff file to a PostScript file.
  629.  
  630.      All print-conversion rules following a CONVERT rule apply to that
  631.      conversion until another CONVERT rule or a TYPE rule is encountered.  The
  632.      COST rule indicates the incremental cost of a conversion.  See
  633.      _P_r_o_g_r_a_m_m_i_n_g _t_h_e _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e _D_e_s_k_t_o_p for more details on the print
  634.      conversion pipeline.  If no COST rule is specified, the cost of the
  635.      conversion is taken to be zero.
  636.  
  637.      Example COST rule:
  638.  
  639.          CCCCOOOOSSSSTTTT 55550000
  640.  
  641.      The FILTER rule is a Bourne shell expression that is executed to perform
  642.      the conversion.  The file of type <source type> will be piped into the
  643.      <filter expression> shell expression and the output of the conversion
  644.      will be placed on the stdout of the expression.  The CURRENTPRINTER
  645.      variable, described below, is used during execution of the shell
  646.      expression.
  647.  
  648.      Example FILTER rule:
  649.  
  650.          FFFFIIIILLLLTTTTEEEERRRR ////uuuussssrrrr////ssssbbbbiiiinnnn////ggggzzzzccccaaaatttt
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  665.  
  666.  
  667.  
  668. EEEEXXXXPPPPAAAANNNNDDDDEEEEDDDD VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
  669.      Before a CMD or MENUCMD shell script is given to the shell for execution,
  670.      the following FTR variables are expanded.  Note that these variables are
  671.      expanded in place rather than being set as environment variables.
  672.  
  673.      $LEADER   If one or more icons are currently selected from the IRIX
  674.                Interactive Desktop, $LEADER is replaced by the icon whose text
  675.                field is highlighted.
  676.  
  677.      $REST     If more than one icon is currently selected from the IRIX
  678.                Interactive Desktop, $REST is replaced by the list of names of
  679.                all selected icons except the highlighted icon (see LEADER
  680.                above).  Otherwise, it is replaced by "".
  681.  
  682.      $LEADERTYPE
  683.                If one or more icons are currently selected from the IRIX
  684.                Interactive Desktop, $LEADERTYPE is replaced by the TYPE of the
  685.                icon whose text field is highlighted.
  686.  
  687.      $RESTTYPE When more than one icon is currently selected from the IRIX
  688.                Interactive Desktop, $RESTTYPE is replaced by the TYPE for all
  689.                selected icons except the highlighted icon, if the remainder of
  690.                the selected icons are all the same TYPE.  If they are not the
  691.                same TYPE, or only one icon is selected, $RESTTYPE is replaced
  692.                by "".
  693.  
  694.      $RESTTYPELIST
  695.                Replaced by the list of TYPEs corresponding to the arguments in
  696.                REST.  If only one icon is selected, $RESTTYPELIST is replaced
  697.                by "".
  698.  
  699.      $ARGC     Replaced by the number of selected icons.  ARGC is always >= 1
  700.                (except when calling the transfer manager with nothing
  701.                selected).
  702.  
  703.      $TARGET   Replaced only for the CMD DROP rule, $TARGET is replaced by the
  704.                name of the icon being dropped upon.
  705.  
  706.      $TARGETTYPE
  707.                Replaced only for the CMD DROP rule, $TARGETTYPE is replaced by
  708.                the TYPE of the icon being dropped upon.
  709.  
  710.      $SELECTED Replaced only for the CMD DROP rule, $SELECTED is replaced by
  711.                the names of the icons being dropped on TARGET.  $SELECTED is
  712.                equivalent to ($REST $LEADER).
  713.  
  714.      $SELECTEDTYPE
  715.                Replaced only for the CMD DROP rule.  If all the icons named in
  716.                SELECTED are of the same TYPE, $SELECTEDTYPE is replaced by
  717.                that TYPE, or "" otherwise.
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  731.  
  732.  
  733.  
  734.      $SELECTEDTYPELIST
  735.                Replaced only for the CMD DROP rule.  Replaced by a list of
  736.                TYPEs corresponding to the TYPEs of the selected icons named in
  737.                SELECTED.  If only one icon is selected, it is replaced by "".
  738.  
  739.      $WINEDITOR
  740.                Replaced by the name of the text editor that should be invoked
  741.                if the shell expression needs an editor.  The default editor is
  742.                jot.  This variable can be set to any window-based editor in
  743.                the user's ._c_s_h_r_c or ._p_r_o_f_i_l_e, or if $EDITOR is set and
  744.                $WINEDITOR is not set, $WINEDITOR becomes
  745.                 `winterm -c $EDITOR'.
  746.  
  747.      $WINTERM  Replaced by the name of the window terminal that should be
  748.                invoked if the shell expression needs a window terminal.
  749.                Currently supported window terminals are _w_s_h and _x_t_e_r_m.  The
  750.                default window terminal is _w_s_h.
  751.  
  752.      $CURRENTPRINTER
  753.                Replaced by routeprint for FILTER rules.  It is replaced by the
  754.                unique name of the currently selected printer.  The current
  755.                printer may be set by the user with the Print Manager, or by
  756.                the -_s option to _r_o_u_t_e_p_r_i_n_t.  See _r_o_u_t_e_p_r_i_n_t(_1).
  757.  
  758.      The following variables are used by various system administration tasks
  759.      and their objects. See _s_y_s_m_g_r(_1) for _D_e_s_k_t_o_p _S_y_s_t_e_m _A_d_m_i_n_i_s_t_r_a_t_i_o_n.
  760.      These variables were used in the file ddddeeeevvvviiiicccceeeessss....ffffttttrrrr under the
  761.      ////uuuussssrrrr////lllliiiibbbb////ffffiiiilllleeeettttyyyyppppeeee////ddddeeeevvvviiiicccceeeessss directory.
  762.  
  763.      $LEADERUNIT
  764.                The selected device's unit number.
  765.  
  766.      $LEADERCONTROLLERNUMBER
  767.                The selected device's controller number.
  768.  
  769.      $LEADERMOUNTPOINT
  770.                The directory where the selected device's filesystem is
  771.                mounted.
  772.  
  773.      $LEADERDEVICEFILE
  774.                The ////ddddeeeevvvv file associated with the selected icon device.
  775.  
  776.  
  777.      The following variable(s) are not supported anymore:
  778.  
  779.      $LEADEROID
  780.  
  781.  
  782. FFFFIIIILLLLEEEESSSS
  783.      /usr/sbin/fftr
  784.      /usr/sbin/ftr
  785.      /usr/lib/filetype/*
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))                                                        FFFFFFFFTTTTRRRR////FFFFTTTTRRRR((((1111))))
  797.  
  798.  
  799.  
  800.      $HOME/.desktop-`hostname`/filetype/*
  801.  
  802.  
  803. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  804.      _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e _D_e_s_k_t_o_p _U_s_e_r _I_n_t_e_r_f_a_c_e _G_u_i_d_e_l_i_n_e_s, _I_R_I_X _I_n_t_e_r_a_c_t_i_v_e
  805.      _D_e_s_k_t_o_p _I_n_t_e_g_r_a_t_i_o_n _G_u_i_d_e, fm(1), iconsmith(1), isSuper(1), tag(1),
  806.      filetype(1), fileopen(1), filealtopen(1), winterm(1), IID(1)
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.